package main.java.sort;

/**
 * @Author: 郑国荣
 * @Date: 2023-07-19-20:32
 * @Description: 冒泡排序 时间复杂度 O(n^2) 空间复杂度 O(1)
 */
public class BubbleSort {
    public static int[] bubbleSort(int[] arr){
        if (arr==null || arr.length<2) return arr;
        int n= arr.length;
        for (int i = 0; i < n - 1; i++) {
            boolean flag = true;//优化,如果一次循环没有发生交换，说明已经有序，直接退出循环
            for (int j = 0; j < n-1-i; j++) {
                if (arr[j+1]<arr[j]){
                    flag = false;
                    int t = arr[j+1];
                    arr[j+1] = arr[j];
                    arr[j] = t;
                }
            }
            if (flag) break;
        }
        return arr;
    }
}
